package exceptionsmy;

//: exceptions/FinallyWorks.java
// The finally clause is always executed.

class ThreeException extends Exception {
	private static final long serialVersionUID = 68569325085079572L;
}

public class FinallyWorks {
	static int count = 0;

	public static void main(String[] args) {
		while (true) {
			try {
				// Post-increment is zero first time:
				if (count++ == 0)
					throw new ThreeException();
				System.out.println("No exception");
			} catch (ThreeException e) {
				System.out.println("ThreeException");
			} finally {
				System.out.println("In finally clause");
				if (count == 2)
					break; // out of "while"
			}
		}
	}
} /*
	 * Output: ThreeException In finally clause No exception In finally clause
	 */// :~
